package com.qijian.maindata.service;

import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qijian.maindata.domain.Bom;
import com.qijian.maindata.domain.query.BomQuery;
import com.qijian.maindata.domain.vo.BomReminderVo;
import com.qijian.maindata.domain.vo.BomVo;
import com.qijian.maindata.domain.vo.BomVo4App;

import java.util.List;

/**
 * 生产BOMService接口
 *
 * @author qijian
 * @date 2021-09-01
 */
public interface IBomService extends IService<Bom> {
    Page<BomVo> pageVo(Page<Bom> page, Wrapper<BomQuery> queryWrapper);

    Page<BomVo4App> list4app(Page<Bom> page, Wrapper<BomQuery> queryWrapper);

    Page<BomVo> selectVoForProject(Page<Bom> page, Wrapper<BomQuery> queryWrapper);

    List<BomVo> vo(QueryWrapper<BomQuery> queryWrapper);

    String maxVersion(String itemCode);

    List<String> classify();

    boolean syncKingdeeBom(JSONArray item, List<JSONArray> datas, String bomType);

    boolean removeWithDetails(List<Long> bomIds);

    BomVo getBomAllLineProcessItems(Long bomId);

    List<BomReminderVo> getReminderRecords();

    Page<BomVo> selectVoForDESQSLKJ(Page<Bom> page, Wrapper<BomQuery> queryWrapper, String startTime);

    int updateBomLine(List<Long> projectIds);

}
